# 网页出现403 Forbidden、"您的IP访问频率太高"，原因是网站采取了一些反爬虫措施。
# 如，服务器会检测某个IP在单位时间内的请求次数，如果超过了这个阈值，就会直接拒绝服务，返回一些错误信息，即封IP
# 服务器检测的是某个IP单位时间的请求次数，那么借助某种方式来伪装IP，让服务器识别不出是由本机发起的请求，就可以成功防止封IP了
# 一种有效的方式就是使用代理

# 1.基本原理：代理服务器(proxy server):代理网络用户去取得网络信息，是网络信息的中转站。
# 正常请求一个网站时，是发送了请求给Web服务器，Web服务器把响应传回，如果设置了代理服务器，实际上就是在本机和服务器间搭建了桥，
# 本机不是直接向Web服务器发起请求，而是向代理服务器发出请求，请求会发送给代理服务器，然后由代理服务器再发送给Web服务器，接着
# 由代理服务器再把Web服务器返回的响应转发给本机。这样同样可以正常访问网页，但此过程中Web服务器识别出的真实IP就不再是本机的IP了
# 成功地实现了IP伪装，即代理的基本原理

# 2.代理的作用：
#   a.突破自身IP访问限制，访问一些平时不能访问的站点
#   b.访问一些单位或团体内部资源：如使用教育网内地址段免费代理服务器，可用于对教育网开放的各类FTP下载上传，以及各类资料查询共享
#   c.提高访问速度：通常代理服务器都设置一个较大的硬盘缓冲区，当有外界的信息通过时，同时也将其保存到缓冲区中，当其他用户再访问
#                   相同的信息时，则直接由缓冲区中取出信息，传给用户，以提高访问速度
#   d.隐藏真实IP：上王者也可通过这种方法隐藏自己的IP，免受攻击。对爬虫来说，使用代理就是隐藏自身IP，防止自身Ip被封锁。

# 3.爬虫代理：
# 对于爬虫，爬取速度过快，在爬取过程中可能遇到同一个IP访问过于频繁的问题，此时网站就会让我们输入验证码登录或者直接封锁IP
# 使用代理隐藏真实的IP，让服务器以为是代理服务器再请求自己，这样在爬取过程中通过不断更换代理，就不会封锁，可达到很好的爬取小区

# 4.代理分类：可根据协议区分，也可根据匿名程度区分
# a.根据协议：
#       1>FTP代理服务器：用于访问FTP服务器，一般由上传、下载以及缓存功能，端口一般为21、 2121等
#       2>HTTP代理服务器:用于访问网页，一般由内容过滤和缓存功能，端口一般为80、8080、 3128等
#       3>SSL/TLS代理：用于访问加密网站，一般由SSL或TLS加密功能(最高支持128位加密强度),端口为443
#       4>RTSP代理：用于访问Real流媒体服务器，一般由缓存功能，端口一般为554
#       5>Telnet代理：用于telnet远程控制(黑客入侵计算机时常用于隐藏身份),端口一般为23
#       6>POP3/SMTP代理：主要用于POP3/SMTP方式收发邮件，一般由缓存功能，端口一般为110/25
#       7>SOCKS代理：单纯传递数据包，不关心具体协议和用法，所以速度快很多，一般由缓存功能，端口一般为1080.SOCKS代理协议又
#                   分为SOCKS4和SOCKS5，前者只支持TCp，后者支持TCP和UDP，还支持各种身份验证机制、服务器端域名解析等。
# b.根据匿名程度：
#       1)高度匿名代理：将数据包原封不动地转发，在服务端看来就像真的是一个普通客户端在访问，而记录的IP是代理服务器的IP
#       2)普通匿名代理：在数据包上做一些改动，服务端上有可能发现这是个代理服务器，也有一定几率追查到客户端的真实IP。
#                      代理服务器通常会加入的HTTP头有HTTP_VIA和HTTP_X_FORWARDED_FOR
#       3)透明代理：不但改动了数据包，还会告诉服务器客户端真实的I。这种代理除了能用缓存技术提高浏览速度，能用内容过滤，
#                   提高安全性外，并无其他显著作用，最常见的例子是内网中的硬件防火墙
#       4)间谍代理：指组织或个人创建用于记录用户传输的数据，然后进行研究、监控等目的的代理服务器。

# 5.常见代理设置：
# A.使用网上的免费代理：最好使用高匿代理，可用的代理不多，需要在使用前筛选一下可用代理，也可进一步维护一个代理池
# B.使用付费代理服务：互联网上存在许多代理商，可以付费使用，质量比免费代理好很多
# C.ADSL拨号：拨一次号换一次IP，稳定性高，也是一种比较有效的解决方案